/*
以下数列 0 1 1 2 3 5 8 13 21 ... 被称为斐波纳契数列。

这个数列从第 3 项开始，每一项都等于前两项之和。

输入一个整数 N，请你输出这个序列的前 N 项。

输入格式
一个整数 N。

输出格式
在一行中输出斐波那契数列的前 N 项，数字之间用空格隔开。

数据范围
0<N<46
输入样例：
5
输出样例：
0 1 1 2 3
*/
#include <iostream>
using namespace std;
const int N = 50;
int f[N];
int main(int argc, char const *argv[])
{
    int n;
    cin >> n;
    f[1] = f[2] = 1;
    cout << f[0] << " " << f[1] << " " << f[2] << " ";
    for (int i = 3; i <= n; i++)
    {
        f[i] = f[i - 1] + f[i - 2];
        cout << f[i] << " ";
    }
    return 0;
}
